<template>
  <header class="header">
    <h1>todos</h1>
    <!--  v-model="isAll"双向绑定全选框选中状态 -->
    <input id="toggle-all" class="toggle-all" type="checkbox" v-model="isAll" />
    <label for="toggle-all"></label>
    <!-- 双向绑定获取输入框的值 
    键盘回车事件-->
    <input
      class="new-todo"
      placeholder="输入任务名称-回车确认"
      autofocus
      @keydown.enter="enterFn"
      v-model="task"
    />
  </header>
</template>

<script>
export default {
  // 接收父组件传来的值
  props: ['list'],
  data() {
    return {
      task: '',
    }
  },
  computed: {
    isAll: {
      set(val) {
        // 将当前全选框的状态赋值给单选框，实现全选影响单选
        this.list.forEach((obj) => {
          obj.isDone = val
        })
      },
      get() {
        // 判断单选框选中状态，实现单选影响全选
        return this.list.every((obj) => obj.isDone)
      },
    },
  },
  methods: {
    // 回车事件函数
    enterFn() {
      // 判断当前输入框是否有数据，没有进行提示
      if (this.task.trim() === '') {
        alert('请正确输入数据')
        return
      }
      // 有数据时，监听自定义添加事件，将输入框的值传过去
      this.$emit('addtask', this.task)
      // 将输入框置空
      this.task = ''
    },
  },
}
</script>
